package com.bestcem.xm.ticket.service.convert;

import com.bestcem.xm.ticket.controller.param.ticket.config.NotifyConfigParam;
import com.bestcem.xm.ticket.controller.vo.ticket.config.TicketNotifyConfigVO;
import com.bestcem.xm.ticket.entity.mongo.TicketNotifyConfig;
import org.mapstruct.InheritConfiguration;
import org.mapstruct.Mapper;

import javax.annotation.Nullable;
import java.util.List;

/**
 * @author liheng
 * @version v1.0
 * @date 2021/8/18 17:27
 */
@Mapper(componentModel = "spring")
public interface TicketNotifyConfigMapper {


    /**
     * entity转换为vo
     *
     * @param ticketNotifyConfig 实体类
     * @return vo
     */
    TicketNotifyConfigVO entity2Vo(TicketNotifyConfig ticketNotifyConfig);

    /**
     * vo转换为entity
     *
     * @param ticketNotifyConfigVO vo
     * @return entity
     */
    @InheritConfiguration
    TicketNotifyConfig vo2Entity(TicketNotifyConfigVO ticketNotifyConfigVO);


    /**
     * entity list转换为vo list
     *
     * @param ticketNotifyConfigs entity list
     * @return vo list
     */
    @Nullable
    List<TicketNotifyConfigVO> entityList2VoList(List<TicketNotifyConfig> ticketNotifyConfigs);



    TicketNotifyConfig notifyParamToEntity(NotifyConfigParam configParam);

}
